<inttypes.h>: Integer Type conversions(3)

NAME
<inttypes.h>: Integer Type conversions -

Detailed Description

 #include <inttypes.h>

This header file includes the exact-width integer definitions from <stdint.h>, and extends them with additional facilities provided by the implementation.

Currently, the extensions include two additional integer types that could hold a 'far' pointer (i.e. a code pointer that can address more than 64 KB), as well as standard names for all printf and scanf formatting options that are supported by the <stdio.h>: Standard IO facilities. As the library does not support the full range of conversion specifiers from ISO 9899:1999, only those conversions that are actually implemented will be listed here.

The idea behind these conversion macros is that, for each of the types defined by <stdint.h>, a macro will be supplied that portably allows formatting an object of that type in printf() or scanf() operations. Example:

    #include <inttypes.h>
    uint8_t smallval;
    int32_t longval;
    ...
    printf('The hexadecimal value of smallval is %' PRIx8
           ', the decimal value of longval is %' PRId32 '.,
           smallval, longval);

  Far pointers for memory access >64K
typedef int32_t int_farptr_t
typedef uint32_t uint_farptr_t

  macros for printf and scanf format specifiers
For C++, these are only included if __STDC_LIMIT_MACROS is defined before including <inttypes.h>.
#define PRId8 'd'
#define PRIdLEAST8 'd'
#define PRIdFAST8 'd'
#define PRIi8 'i'
#define PRIiLEAST8 'i'
#define PRIiFAST8 'i'
#define PRId16 'd'
#define PRIdLEAST16 'd'
#define PRIdFAST16 'd'
#define PRIi16 'i'
#define PRIiLEAST16 'i'
#define PRIiFAST16 'i'
#define PRId32 'ld'
#define PRIdLEAST32 'ld'
#define PRIdFAST32 'ld'
#define PRIi32 'li'
#define PRIiLEAST32 'li'
#define PRIiFAST32 'li'
#define PRIdPTR PRId16
#define PRIiPTR PRIi16
#define PRIo8 'o'
#define PRIoLEAST8 'o'
#define PRIoFAST8 'o'
#define PRIu8 'u'
#define PRIuLEAST8 'u'
#define PRIuFAST8 'u'
#define PRIx8 'x'
#define PRIxLEAST8 'x'
#define PRIxFAST8 'x'
#define PRIX8 'X'
#define PRIXLEAST8 'X'
#define PRIXFAST8 'X'
#define PRIo16 'o'
#define PRIoLEAST16 'o'
#define PRIoFAST16 'o'
#define PRIu16 'u'
#define PRIuLEAST16 'u'
#define PRIuFAST16 'u'
#define PRIx16 'x'
#define PRIxLEAST16 'x'
#define PRIxFAST16 'x'
#define PRIX16 'X'
#define PRIXLEAST16 'X'
#define PRIXFAST16 'X'
#define PRIo32 'lo'
#define PRIoLEAST32 'lo'
#define PRIoFAST32 'lo'
#define PRIu32 'lu'
#define PRIuLEAST32 'lu'
#define PRIuFAST32 'lu'
#define PRIx32 'lx'
#define PRIxLEAST32 'lx'
#define PRIxFAST32 'lx'
#define PRIX32 'lX'
#define PRIXLEAST32 'lX'
#define PRIXFAST32 'lX'
#define PRIoPTR PRIo16
#define PRIuPTR PRIu16
#define PRIxPTR PRIx16
#define PRIXPTR PRIX16
#define SCNd16 'd'
#define SCNdLEAST16 'd'
#define SCNdFAST16 'd'
#define SCNi16 'i'
#define SCNiLEAST16 'i'
#define SCNiFAST16 'i'
#define SCNd32 'ld'
#define SCNdLEAST32 'ld'
#define SCNdFAST32 'ld'
#define SCNi32 'li'
#define SCNiLEAST32 'li'
#define SCNiFAST32 'li'
#define SCNdPTR SCNd16
#define SCNiPTR SCNi16
#define SCNo16 'o'
#define SCNoLEAST16 'o'
#define SCNoFAST16 'o'
#define SCNu16 'u'
#define SCNuLEAST16 'u'
#define SCNuFAST16 'u'
#define SCNx16 'x'
#define SCNxLEAST16 'x'
#define SCNxFAST16 'x'
#define SCNo32 'lo'
#define SCNoLEAST32 'lo'
#define SCNoFAST32 'lo'
#define SCNu32 'lu'
#define SCNuLEAST32 'lu'
#define SCNuFAST32 'lu'
#define SCNx32 'lx'
#define SCNxLEAST32 'lx'
#define SCNxFAST32 'lx'
#define SCNoPTR SCNo16
#define SCNuPTR SCNu16
#define SCNxPTR SCNx16

Define Documentation

  #define PRId16 'd'

decimal printf format for int16_t

  #define PRId32 'ld'

decimal printf format for int32_t

  #define PRId8 'd'

decimal printf format for int8_t

  #define PRIdFAST16 'd'

decimal printf format for int_fast16_t

  #define PRIdFAST32 'ld'

decimal printf format for int_fast32_t

  #define PRIdFAST8 'd'

decimal printf format for int_fast8_t

  #define PRIdLEAST16 'd'

decimal printf format for int_least16_t

  #define PRIdLEAST32 'ld'

decimal printf format for int_least32_t

  #define PRIdLEAST8 'd'

decimal printf format for int_least8_t

  #define PRIdPTR PRId16

decimal printf format for intptr_t

  #define PRIi16 'i'

integer printf format for int16_t

  #define PRIi32 'li'

integer printf format for int32_t

  #define PRIi8 'i'

integer printf format for int8_t

  #define PRIiFAST16 'i'

integer printf format for int_fast16_t

  #define PRIiFAST32 'li'

integer printf format for int_fast32_t

  #define PRIiFAST8 'i'

integer printf format for int_fast8_t

  #define PRIiLEAST16 'i'

integer printf format for int_least16_t

  #define PRIiLEAST32 'li'

integer printf format for int_least32_t

  #define PRIiLEAST8 'i'

integer printf format for int_least8_t

  #define PRIiPTR PRIi16

integer printf format for intptr_t

  #define PRIo16 'o'

octal printf format for uint16_t

  #define PRIo32 'lo'

octal printf format for uint32_t

  #define PRIo8 'o'

octal printf format for uint8_t

  #define PRIoFAST16 'o'

octal printf format for uint_fast16_t

  #define PRIoFAST32 'lo'

octal printf format for uint_fast32_t

  #define PRIoFAST8 'o'

octal printf format for uint_fast8_t

  #define PRIoLEAST16 'o'

octal printf format for uint_least16_t

  #define PRIoLEAST32 'lo'

octal printf format for uint_least32_t

  #define PRIoLEAST8 'o'

octal printf format for uint_least8_t

  #define PRIoPTR PRIo16

octal printf format for uintptr_t

  #define PRIu16 'u'

decimal printf format for uint16_t

  #define PRIu32 'lu'

decimal printf format for uint32_t

  #define PRIu8 'u'

decimal printf format for uint8_t

  #define PRIuFAST16 'u'

decimal printf format for uint_fast16_t

  #define PRIuFAST32 'lu'

decimal printf format for uint_fast32_t

  #define PRIuFAST8 'u'

decimal printf format for uint_fast8_t

  #define PRIuLEAST16 'u'

decimal printf format for uint_least16_t

  #define PRIuLEAST32 'lu'

decimal printf format for uint_least32_t

  #define PRIuLEAST8 'u'

decimal printf format for uint_least8_t

  #define PRIuPTR PRIu16

decimal printf format for uintptr_t

  #define PRIX16 'X'

uppercase hexadecimal printf format for uint16_t

  #define PRIx16 'x'

hexadecimal printf format for uint16_t

  #define PRIX32 'lX'

uppercase hexadecimal printf format for uint32_t

  #define PRIx32 'lx'

hexadecimal printf format for uint32_t

  #define PRIX8 'X'

uppercase hexadecimal printf format for uint8_t

  #define PRIx8 'x'

hexadecimal printf format for uint8_t

  #define PRIXFAST16 'X'

uppercase hexadecimal printf format for uint_fast16_t

  #define PRIxFAST16 'x'

hexadecimal printf format for uint_fast16_t

  #define PRIXFAST32 'lX'

uppercase hexadecimal printf format for uint_fast32_t

  #define PRIxFAST32 'lx'

hexadecimal printf format for uint_fast32_t

  #define PRIXFAST8 'X'

uppercase hexadecimal printf format for uint_fast8_t

  #define PRIxFAST8 'x'

hexadecimal printf format for uint_fast8_t

  #define PRIXLEAST16 'X'

uppercase hexadecimal printf format for uint_least16_t

  #define PRIxLEAST16 'x'

hexadecimal printf format for uint_least16_t

  #define PRIXLEAST32 'lX'

uppercase hexadecimal printf format for uint_least32_t

  #define PRIxLEAST32 'lx'

hexadecimal printf format for uint_least32_t

  #define PRIXLEAST8 'X'

uppercase hexadecimal printf format for uint_least8_t

  #define PRIxLEAST8 'x'

hexadecimal printf format for uint_least8_t

  #define PRIXPTR PRIX16

uppercase hexadecimal printf format for uintptr_t

  #define PRIxPTR PRIx16

hexadecimal printf format for uintptr_t

  #define SCNd16 'd'

decimal scanf format for int16_t

  #define SCNd32 'ld'

decimal scanf format for int32_t

  #define SCNdFAST16 'd'

decimal scanf format for int_fast16_t

  #define SCNdFAST32 'ld'

decimal scanf format for int_fast32_t

  #define SCNdLEAST16 'd'

decimal scanf format for int_least16_t

  #define SCNdLEAST32 'ld'

decimal scanf format for int_least32_t

  #define SCNdPTR SCNd16

decimal scanf format for intptr_t

  #define SCNi16 'i'

generic-integer scanf format for int16_t

  #define SCNi32 'li'

generic-integer scanf format for int32_t

  #define SCNiFAST16 'i'

generic-integer scanf format for int_fast16_t

  #define SCNiFAST32 'li'

generic-integer scanf format for int_fast32_t

  #define SCNiLEAST16 'i'

generic-integer scanf format for int_least16_t

  #define SCNiLEAST32 'li'

generic-integer scanf format for int_least32_t

  #define SCNiPTR SCNi16

generic-integer scanf format for intptr_t

  #define SCNo16 'o'

octal scanf format for uint16_t

  #define SCNo32 'lo'

octal scanf format for uint32_t

  #define SCNoFAST16 'o'

octal scanf format for uint_fast16_t

  #define SCNoFAST32 'lo'

octal scanf format for uint_fast32_t

  #define SCNoLEAST16 'o'

octal scanf format for uint_least16_t

  #define SCNoLEAST32 'lo'

octal scanf format for uint_least32_t

  #define SCNoPTR SCNo16

octal scanf format for uintptr_t

  #define SCNu16 'u'

decimal scanf format for uint16_t

  #define SCNu32 'lu'

decimal scanf format for uint32_t

  #define SCNuFAST16 'u'

decimal scanf format for uint_fast16_t

  #define SCNuFAST32 'lu'

decimal scanf format for uint_fast32_t

  #define SCNuLEAST16 'u'

decimal scanf format for uint_least16_t

  #define SCNuLEAST32 'lu'

decimal scanf format for uint_least32_t

  #define SCNuPTR SCNu16

decimal scanf format for uintptr_t

  #define SCNx16 'x'

hexadecimal scanf format for uint16_t

  #define SCNx32 'lx'

hexadecimal scanf format for uint32_t

  #define SCNxFAST16 'x'

hexadecimal scanf format for uint_fast16_t

  #define SCNxFAST32 'lx'

hexadecimal scanf format for uint_fast32_t

  #define SCNxLEAST16 'x'

hexadecimal scanf format for uint_least16_t

  #define SCNxLEAST32 'lx'

hexadecimal scanf format for uint_least32_t

  #define SCNxPTR SCNx16

hexadecimal scanf format for uintptr_t

Typedef Documentation

  typedef int32_t int_farptr_t

signed integer type that can hold a pointer > 64 KB

  typedef uint32_t uint_farptr_t

unsigned integer type that can hold a pointer > 64 KB